package com.imu.purse.modules.app.service;

import com.imu.purse.modules.app.entity.ImuUserEntity;
import com.imu.purse.modules.app.form.RegisterForm;
import com.imu.purse.modules.trade.entity.FundEntity;

import java.io.File;
import java.math.BigDecimal;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

/**
 * 用户信息
 * @author sunhongwei
 * @email sunhongwei@jshijian.com
 * @date 2018-03-21 10:11:22
 * Copyright (c) 2017 武汉极时间科技有限公司 版权所有 
 * Jshijian aloha CO.,LTD. All Rights Reserved. 
 */
public interface ImuUserService 
{
	/****
	 * 插入用户信息
	 * @param imuUser
 	 * @date 2018-03-21 10:11:22
	 * @return
	 */
    public int save(final ImuUserEntity imuUser,String userInvPhone);
    
    /****
	 * 删除用户信息
	 * @param ids
 	 * @date 2018-03-21 10:11:22
	 * @return
	 */
    public boolean delete(final String ...ids);
    
    /****
	 * 修改用户信息
	 * @param imuUser
 	 * @date 2018-03-21 10:11:22
	 * @return
	 */
    public int update(final ImuUserEntity imuUser);
    
     /****
	 * 插入或跟新用户信息
	 * @param imuUser
 	 * @date 2018-03-21 10:11:22
	 * @return
	 */
    public int saveUpdate(final ImuUserEntity imuUser);
    
    /****
	 * 根据ID查询用户信息
	 * @param id
 	 * @date 2018-03-21 10:11:22
	 * @return
	 */
    public ImuUserEntity findById(final Long id);
    
    /****
   	 * 分页查询用户信息
	 * @param imuUser
 	 * @date 2018-03-21 10:11:22
   	 * @return
   	 */
    public List<ImuUserEntity> queryList(final ImuUserEntity imuUser);
    
    ImuUserEntity queryByMobile(String phone);
    
    ImuUserEntity login(final String phone,String coreAddress);
    
    public int updates(final ImuUserEntity entity);
    
    /**
     * 注册用户
     * @param form
	 * @param moneyAddr
	 * @param ytfPwd
     * @return`
     */
    public int registerUser(final RegisterForm form, final String moneyAddr,final String ytfPwd);
    /****
	 * 修改用户信息
	 * @param imuUser
 	 * @date 2018-03-21 10:11:22
	 * @return
	 */
    public int updates(final ImuUserEntity imuUser,final Long userId);
    

    /****
	 * 修改用户手机号
	 * @param imuUser
 	 * @date 2018-03-21 10:11:22
	 * @return
	 */
    public int updatePhone(final ImuUserEntity imuUser);
    
    /****
	 * 显示用户金额
	 * @param uid
 	 * @date 2018-03-21 10:11:22
	 * @return
	 */
    public FundEntity showUserMoney(long uid);
    
    /**
     * 
     * @param imuOutPerson   转出人信息
     * @param imuInPerson 转入人信息
     * @param money   转账金额
     * @param status  区分内部转账与外部转账  0==内部转账  1==外部转账
	 * @param fee
	 * @param transId
     * @return
     */
    public int transaction(ImuUserEntity imuOutPerson, ImuUserEntity imuInPerson, String money, int status,
						   BigDecimal fee,String transId);

}
